import DCLib.RealView
import random
import datetime


class UnifyData:
    def __init__(self, data_url: str) -> None:
        super().__init__()
        self.data_url = data_url

    # 打印其基本属性
    def print_obj(self):
        print(self.data_url)


# 数据结构任务，里面包含一个任务图所有节点的数组
class UnifyTask:
    def __init__(self) -> None:
        super().__init__()
        self.all_real_view_node = []
        # 任务链的入口和出口，入口一定是task节点，出口一定是data节点
        self.entrance = None
        self.exit = None
        # 给当前task一个id一个hash值
        self.task_id = str(random.randint(1, 99999999999)) + datetime.datetime.now().strftime("%Y%m%d%H%M%S")
        # 申请一个数组记录所有的串行算子
        self.seq_fun_set = set()
        # 申请一个数组记录所有的并行算子
        self.para_fun_set = set()